use macros::EnumFrom;

#[allow(unused)]
#[derive(Debug, EnumFrom)]
enum Direction<T> {
    Up(DirectionUp<T>),
    Down,
}

#[derive(Debug)]
struct DirectionUp<T> {
    #[allow(unused)]
    speed: T,
}

fn main() {
    let direction: Direction<i32> = DirectionUp { speed: 10 }.into();

    // let down = Direction::Down;
    println!("{:?}", direction);
    // println!("{:?}", down);
}

// ident: Direction, var: Up, ty: DirectionUp
// impl From<DirectionUp> for Direction {
//     fn from(v: DirectionUp) -> Self {
//         Direction::Up(v)
//     }
// }
